//////////////////////////////////////////////////////////////////////////////////
//	File Name:	Weapon.h
//	Author	 :	Yuri Oyoko
//	Purpose	 :	The weapon class defines the weapon currently being used
//////////////////////////////////////////////////////////////////////////////////
#pragma once
class SoundManager;

class Weapon
{
private:
	int WeaponType;
	int MaxAmmo;
	int TotalAmmo;
	int ClipCapacity;
	int CurrentClipAmmo;
	int WeaponDamage;
	float FireRate;
	float HitChance;
	float Timer;
	SoundManager* theManager;
public:
	enum WEAPON_TYPE { PISTOL = 0, UZI, ASSAULT_RIFLE, SHOTGUN, AUTOSHOTGUN, HUNTING_RIFLE};
	Weapon();
	~Weapon();
	
	//Accessors
	int GetWeaponType(){return WeaponType;}
	int GetMaxAmmo(){return MaxAmmo;}
	int GetTotalAmmo(){return TotalAmmo;}
	int GetWeaponDamage(){return WeaponDamage;}
	int GetClipCapacity(){return ClipCapacity;}
	int GetCurrentClipAmmo(){return CurrentClipAmmo;}
	float GetFireRate(){return FireRate;}
	float GetHitChance(){return HitChance;}

	//Modifiers
	void SetWeaponType(int Value){WeaponType = Value;}
	void SetMaxAmmo(int Value){MaxAmmo = Value;}
	void SetTotalAmmo(int Value){TotalAmmo = Value;}
	void SetCurrentClipAmmo(int Value){CurrentClipAmmo = Value;}
	void SetWeaponDamage(int Value){WeaponDamage = Value;}
	void SetClipCapacity(int Value){ClipCapacity = Value;}
	void SetFireRate(float Value){FireRate = Value;}
	void SetHitChance(float Value){HitChance = Value;}
	
	//Weapon specific functions
	void FireWeapon();
	void ReloadWeapon();
	void Update(float ElapsedTime);

};